const multer = require('multer');

const path = require("path");

let tools = {
    // ES6的方法简写
    multer() {
        // 设置上传文件的存储方式 这里使用了diskStorage来指定存储目录和文件名
        const storage = multer.diskStorage({
            // 设置文件存储目录
            // 注意：如果目录不存在，multer会自动创建目录
            destination: function (req, file, cb) {
                cb(null, "static/upload") // 这里可以修改为你想要的目录，例如：'static/upload'
                // cb(null, 'static/upload') // 如果想要存储到项目的静态目录下，可以使用这个
                // 注意：如果使用了相对路径，目录必须存在，否则会报错
            },
            // 设置文件名
            // 注意：如果不设置文件名，multer会自动生成一个随机的文件
            filename: function (req, file, cb) {
                // 获取文件的扩展名
                const extname = path.extname(file.originalname); // 获取文件的扩展名
                // 设置文件名为：原始文件名-时间戳.扩展名
                // 例如：file-1634567890123.jpg
                cb(null, `${file.fieldname}-${Date.now()}${extname}`); // 这里可以修改为你想要的文件名格式
            }
        })
        const upload = multer({ storage: storage })
        return upload;
    },
    md5(str) {
        // 引入crypto模块
        const crypto = require('crypto');
        // 创建md5哈希对象
        const hash = crypto.createHash('md5');
        // 更新哈希对象
        hash.update(str);
        // 返回哈希值
        return hash.digest('hex');
    }
}

module.exports = tools;